home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmiSoft / Dev / misc / WHDLoad_dev.lha / WHDLoad / Src / memory-speed / speed.asm < prev    next >
Encoding:
Assembly Source File  |  2003-02-19  |  11.3 KB  |  613 lines

  1. ;*---------------------------------------------------------------------------
  2. ;  :Program.    speed.asm
  3. ;  :Contents.    Slave to benchmark the memory speed under different cpu/mmu
  4. ;        setups, upper half of the screen shows performance with test
  5. ;        code located in Chip memory, lower half code in ExpMem (Fast)
  6. ;  :Author.    Wepl
  7. ;  :Version.    $Id: speed.asm 1.5 2001/03/11 23:09:01 jah Exp jah $
  8. ;  :History.    xx.xx.xx started
  9. ;        12.12.00 cleanup for public release
  10. ;        20.02.01 slave is also cacheable, more clear results with NoMMU
  11. ;        17.02.03 WHDLTAG_Private5 added
  12. ;  :Requires.    -
  13. ;  :Copyright.    Public Domain
  14. ;  :Language.    68000 Assembler
  15. ;  :Translator.    Devpac 3.14, Barfly 2.9
  16. ;  :To Do.
  17. ;---------------------------------------------------------------------------*
  18.  
  19.     INCDIR    Includes:
  20.     INCLUDE    whdload.i
  21.     INCLUDE    whdmacros.i
  22.  
  23.  BITDEF AF,68060,7
  24.  
  25.     OUTPUT    "wart:.debug/speed.slave"
  26.  
  27.     BOPT    O+            ;enable optimizing
  28.     BOPT    OG+            ;enable optimizing
  29.     BOPT    w4-            ;disable 64k warnings
  30.     BOPT    wo-            ;disable optimize warnings
  31.     SUPER
  32.     MC68060
  33.  
  34. ;======================================================================
  35.  
  36. _base        SLAVE_HEADER            ;ws_Security + ws_ID
  37.         dc.w    10
  38.         dc.w    WHDLF_NoError        ;ws_flags
  39.         dc.l    $40000            ;ws_BaseMemSize
  40.         dc.l    0            ;ws_ExecInstall
  41.         dc.w    _start-_base        ;ws_GameLoader
  42.         dc.w    0            ;ws_CurrentDir
  43.         dc.w    0            ;ws_DontCache
  44.         dc.b    0            ;ws_keydebug = F9
  45.         dc.b    $59            ;ws_keyexit = F10
  46. EXPMEMLEN = $3000
  47. _expmem        dc.l    EXPMEMLEN        ;ws_ExpMem
  48.         dc.w    _name-_base        ;ws_name
  49.         dc.w    _copy-_base        ;ws_copy
  50.         dc.w    _info-_base        ;ws_info
  51.  
  52. _name        dc.b    "Memory Speed Benchmark Slave",0
  53. _copy        dc.b    "2000-2003 Wepl",0
  54. _info        dc.b    "done by Wepl "
  55.     DOSCMD    "WDate  >T:date"
  56.     INCBIN    "T:date"
  57.         dc.b    0
  58.     EVEN
  59.  
  60. ;======================================================================
  61. _start    ;    A0 = resident loader
  62. ;======================================================================
  63.  
  64.         lea    (_ciaa),a4        ;A4 = ciaa
  65.         move.l    a0,a5            ;A5 = resload
  66.         lea    (_custom),a6        ;A6 = custom
  67.         move.l    (_expmem),a7
  68.         add.l    #EXPMEMLEN-$200,a7    ;because hrtmon
  69.         lea    (_ssp),a0
  70.         move.l    a7,(a0)
  71.  
  72. SCREENWIDTH    = 320
  73. SCREENHEIGHT    = 279
  74. CHARHEIGHT    = 5
  75. CHARWIDTH    = 5
  76.  
  77. MEMRCHIP    = $4000
  78. MEMCOPPER    = $e000
  79. MEMCHIP        = $f000
  80. MEMSCREEN    = $10000
  81.  
  82. nc=WCPUF_Slave_NCS|WCPUF_Base_NCS|WCPUF_Exp_NCS
  83. ic=WCPUF_Slave_WT|WCPUF_Base_WT|WCPUF_Exp_WT|WCPUF_IC
  84. bc=ic|WCPUF_BC|WCPUF_SS
  85. wt=bc|WCPUF_DC
  86. cb=WCPUF_Slave_CB|WCPUF_Base_CB|WCPUF_Exp_CB|WCPUF_IC|WCPUF_DC|WCPUF_BC|WCPUF_SS
  87. sb=cb|WCPUF_SB|WCPUF_NWA
  88.  
  89. setcpu    MACRO
  90.         movem.l    d0-d1/a0-a1,-(a7)
  91.         move.l    #\1,d0
  92.         move.l    #WCPUF_All,d1
  93.         jsr    (resload_SetCPU,a5)
  94.         movem.l    (a7)+,d0-d1/a0-a1
  95.     ENDM
  96. catcpu    MACRO
  97.         addq    #2,d0
  98.         lea    \2,a0
  99.         bsr    _ps
  100.         sub.w    #CHARWIDTH*8,d0
  101.         addq.w    #CHARHEIGHT+1,d1
  102.         setcpu    \1
  103.         movem.l    d0-d1/a0-a1,-(a7)
  104.         moveq    #0,d0
  105.         moveq    #0,d1
  106.         jsr    (resload_SetCPU,a5)
  107.         move.l    d0,d2
  108.         movem.l    (a7)+,d0-d1/a0-a1
  109.         bsr    _pi
  110.         move.w    _attn+2,d7
  111.         btst    #AFB_68020,d7
  112.         beq    .q\@
  113.         movec    cacr,d2
  114.         sub.w    #CHARWIDTH*8,d0
  115.         addq.w    #CHARHEIGHT+1,d1
  116.         bsr    _pi
  117.         sub.w    #CHARHEIGHT+1,d1
  118.         btst    #AFB_68060,d7
  119.         beq    .q\@
  120.         movec    pcr,d2
  121.         sub.w    #CHARWIDTH*8,d0
  122.         add.w    #(CHARHEIGHT+1)*2,d1
  123.         bsr    _pi
  124.         sub.w    #(CHARHEIGHT+1)*2,d1
  125. .q\@        sub.w    #CHARHEIGHT+1,d1
  126.     ENDM
  127.  
  128.     ;clear screen
  129.         lea    (MEMSCREEN),a0
  130.         move.w    #SCREENHEIGHT*SCREENWIDTH/8/4-1,d0
  131. .cl        clr.l    (a0)+
  132.         dbf    d0,.cl
  133.     ;init gfx
  134.         lea    (_copper),a0
  135.         lea    (MEMCOPPER),a1
  136.         move.l    a1,(cop1lc,a6)
  137. .n        move.l    (a0)+,(a1)+
  138.         bpl    .n
  139.         waitvb a6
  140.         move.w    #DMAF_SETCLR|DMAF_MASTER|DMAF_COPPER|DMAF_RASTER,(dmacon,a6)
  141.     ;init timers
  142.         lea    (_tags),a0
  143.         jsr    (resload_Control,a5)
  144.         move.l    (_freq),d0
  145.         divu    #11,d0
  146.         move.b    d0,(ciatalo,a4)
  147.         lsr.w    #8,d0
  148.         move.b    d0,(ciatahi,a4)
  149.         move.b    #CIACRAF_RUNMODE,(ciacra,a4)
  150.         bset    #CIACRAB_LOAD,(ciacra,a4)
  151.         move.b    #$7f,(ciaicr,a4)
  152.         move.b    #CIAICRF_SETCLR|CIAICRF_TA,(ciaicr,a4)
  153.         move.w    #INTF_SETCLR|INTF_INTEN|INTF_PORTS,(intena,a6)
  154.         tst.b    (ciaicr,a4)
  155.         move.w    #INTF_PORTS,(intreq,a6)
  156.     ;copy code to chip
  157.         lea    _rchip,a0
  158.         lea    _stuffend,a1
  159.         lea    MEMRCHIP,a2
  160. .cp        move.l    (a0)+,(a2)+
  161.         cmp.l    a0,a1
  162.         bhi    .cp
  163.     ;copy code to fast
  164.         lea    _rfast,a0
  165.         lea    _stuffend,a1
  166.         move.l    (_expmem),a2
  167.         add.l    #16,a2
  168. .cp2        move.l    (a0)+,(a2)+
  169.         cmp.l    a0,a1
  170.         bhi    .cp2
  171.     ;set expmem/slave
  172.         lea    (_var),a2            ;A2 = slave
  173.         move.l    (_expmem),a3            ;A3 = expmem
  174.  
  175.     ;print screen text
  176.         moveq    #0,d0
  177.         move.l    #SCREENHEIGHT-CHARHEIGHT,d1
  178.         lea    _quit,a0
  179.         bsr    _ps
  180.  
  181.         moveq    #0,d0
  182.         moveq    #0,d1
  183.         lea    _top,a0
  184.         bsr    _ps
  185.  
  186.         moveq    #0,d0
  187.         addq.l    #6,d1
  188.         lea    _top2,a0
  189.         bsr    _ps
  190.         move.l    _attn,d2
  191.         bsr    _pi1
  192.         lea    _top3,a0
  193.         bsr    _ps
  194.         move.l    _freq,d2
  195.         bsr    _pi1
  196.         lea    _top5,a0
  197.         bsr    _ps
  198.         move.l    _ver,d2
  199.         bsr    _pi1
  200.         lea    _dot,a0
  201.         bsr    _ps
  202.         move.l    _rev,d2
  203.         bsr    _pi1
  204.         lea    _dot,a0
  205.         bsr    _ps
  206.         move.l    _build,d2
  207.         bsr    _pi1
  208.  
  209.         moveq    #0,d0
  210.         add.l    #CHARHEIGHT+1,d1
  211.         lea    _chip,a0
  212.         bsr    _ps
  213.         lea    _equ,a0
  214.         bsr    _ps
  215.         move.l    #MEMCHIP,d2
  216.         bsr    _pi1
  217.         add.l    #2*CHARWIDTH,d0
  218.         lea    _exp,a0
  219.         bsr    _ps
  220.         lea    _equ,a0
  221.         bsr    _ps
  222.         move.l    a3,d2
  223.         bsr    _pi1
  224.         add.l    #2*CHARWIDTH,d0
  225.         lea    _slv,a0
  226.         bsr    _ps
  227.         lea    _equ,a0
  228.         bsr    _ps
  229.         move.l    a2,a0
  230.         move.l    a0,d2
  231.         bsr    _pi1
  232.  
  233.         move.l    #7*CHARWIDTH,d0
  234.         add.w    #7+CHARHEIGHT+1,d1
  235.         lea    _leg2,a0
  236.         bsr    _ps
  237.         move.l    #9*CHARWIDTH,d0
  238.         addq.l    #CHARHEIGHT+1,d1
  239.         lea    _leg3,a0
  240.         bsr    _ps
  241.         move.l    #10*CHARWIDTH,d0
  242.         addq.l    #CHARHEIGHT+1,d1
  243.         lea    _leg4,a0
  244.         bsr    _ps
  245.  
  246.         moveq    #13*CHARWIDTH,d0
  247.         sub.l    #3*(CHARHEIGHT+1),d1
  248.         catcpu    nc,_nc
  249.         catcpu    ic,_ic
  250.         catcpu    bc,_bc
  251.         catcpu    wt,_wt
  252.         catcpu    cb,_cb
  253.         catcpu    sb,_sb
  254.  
  255.     ;switch to usermode
  256.         move.l    _custom1,d0
  257.         beq    .nc1
  258.         lea    (-$200,a7),a0
  259.         move    a0,usp
  260.         move    #0,sr
  261. .nc1
  262.     ;call routines
  263. .again        moveq    #39,d1
  264.         jsr    MEMRCHIP
  265.         move.l    (_expmem),a0
  266.         jsr    (16,a0)
  267.         btst    #6,$bfe001
  268.         bne    .again
  269.  
  270.     ;save picture
  271.         lea    (MEMSCREEN),a0
  272.         lea    (_iff),a1
  273.         lea    (_iff_),a2
  274. .cpy        move.w    -(a2),-(a0)
  275.         cmp.l    a1,a2
  276.         bne    .cpy
  277.         move.l    a0,a1
  278.         lea    (_pic),a0
  279.         move.l    #(_iff_-_iff)+SCREENWIDTH*SCREENHEIGHT/8,d0
  280.         jsr    (resload_SaveFile,a5)
  281.     ;end
  282.         pea    TDREASON_OK
  283.         jmp    (resload_Abort,a5)
  284.  
  285. CALC_S    MACRO
  286.         moveq    #0,d2
  287.         lea    \2,a0            ;test address
  288.         pea    \1
  289.         move.l    (a7)+,$68
  290.         move    sr,d5            ;D5 = saved SR
  291.         move.l    a7,d6            ;D6 = saved SP
  292.         bset    #CIACRAB_START,(ciacra,a4)
  293.     QUAD
  294.     ENDM
  295.  
  296. CALC_E    MACRO
  297. .quit0\@    btst    #CIAICRB_TA,(ciaicr,a4)
  298.         bne    (.quit\@)
  299.         move.w    #INTF_PORTS,(intreq,a6)
  300.         rte
  301. .quit\@        move.w    #INTF_PORTS,(intreq,a6)
  302.         btst    #13,d5            ;supervisor
  303.         bne    .s\@
  304.         move.l    (_ssp),a7
  305. .s\@        move    d5,sr
  306.         move.l    d6,a7
  307.         bsr    _pi
  308.         addq    #2,d0
  309.     ENDM
  310.  
  311. CALCRR    MACRO
  312.         setcpu    \3
  313.         CALC_S    .go\@,\1
  314. .loop\@        move.\2    (a0),d7
  315.         move.\2    (a0),d7
  316.         move.\2    (a0),d7
  317.         move.\2    (a0),d7
  318.         move.\2    (a0),d7
  319.         move.\2    (a0),d7
  320.         move.\2    (a0),d7
  321.         move.\2    (a0),d7
  322.         addq.l    #8,d2
  323.         bra    .loop\@
  324. .go\@        CALC_E
  325.     ENDM
  326.  
  327. CALCR    MACRO
  328.         btst    #6,$bfe001
  329.         beq    .q\@
  330.         moveq    #0,d0
  331.         addq.w    #6,d1
  332.         lea    \1,a0
  333.         bsr    _ps
  334.         addq    #2,d0
  335.         lea    \3,a0
  336.         bsr    _ps
  337.         addq    #2,d0
  338.         lea    _read,a0
  339.         bsr    _ps
  340.         addq    #2,d0
  341.         CALCRR    \2,\4,nc
  342.         CALCRR    \2,\4,ic
  343.         CALCRR    \2,\4,bc
  344.         CALCRR    \2,\4,wt
  345.         CALCRR    \2,\4,cb
  346.         CALCRR    \2,\4,sb
  347. .q\@
  348.     ENDM
  349.  
  350. CALCWW    MACRO
  351.         setcpu    \3
  352.         CALC_S    .go\@,\1
  353. .loop\@        move.\2    d7,(a0)
  354.         move.\2    d7,(a0)
  355.         move.\2    d7,(a0)
  356.         move.\2    d7,(a0)
  357.         move.\2    d7,(a0)
  358.         move.\2    d7,(a0)
  359.         move.\2    d7,(a0)
  360.         move.\2    d7,(a0)
  361.         addq.l    #8,d2
  362.         bra    .loop\@
  363. .go\@        CALC_E
  364.     ENDM
  365.  
  366. CALCW    MACRO
  367.         btst    #6,$bfe001
  368.         beq    .q\@
  369.         moveq    #0,d0
  370.         addq.w    #6,d1
  371.         lea    \1,a0
  372.         bsr    _ps
  373.         addq    #2,d0
  374.         lea    \3,a0
  375.         bsr    _ps
  376.         addq    #2,d0
  377.         lea    _writ,a0
  378.         bsr    _ps
  379.         addq    #2,d0
  380.         CALCWW    \2,\4,nc
  381.         CALCWW    \2,\4,ic
  382.         CALCWW    \2,\4,bc
  383.         CALCWW    \2,\4,wt
  384.         CALCWW    \2,\4,cb
  385.         CALCWW    \2,\4,sb
  386. .q\@
  387.     ENDM
  388.  
  389. _rchip        CALCR    _cia,$bfe001,_byte,b
  390.         CALCW    _cia,$bfec01,_byte,b
  391.  
  392.         addq    #2,d1
  393.         CALCR    _cust,vposr(a6),_byte,b
  394.         CALCR    _cust,vposr(a6),_word,w
  395.         CALCR    _cust,vposr(a6),_long,l
  396.         CALCW    _cust,$184(a6),_word,w
  397.         CALCW    _cust,$184(a6),_long,l
  398.  
  399.         addq    #2,d1
  400.         CALCR    _chip,MEMCHIP,_byte,b
  401.         CALCR    _chip,MEMCHIP,_word,w
  402.         CALCR    _chip,MEMCHIP,_long,l
  403.         CALCW    _chip,MEMCHIP,_byte,b
  404.         CALCW    _chip,MEMCHIP,_word,w
  405.         CALCW    _chip,MEMCHIP,_long,l
  406.  
  407.         addq    #2,d1
  408.         CALCR    _exp,(a3),_byte,b
  409.         CALCR    _exp,(a3),_word,w
  410.         CALCR    _exp,(a3),_long,l
  411.         CALCW    _exp,(a3),_byte,b
  412.         CALCW    _exp,(a3),_word,w
  413.         CALCW    _exp,(a3),_long,l
  414.  
  415.         addq    #2,d1
  416.         CALCR    _slv,(a2),_byte,b
  417.         CALCR    _slv,(a2),_word,w
  418.         CALCR    _slv,(a2),_long,l
  419.         CALCW    _slv,(a2),_byte,b
  420.         CALCW    _slv,(a2),_word,w
  421.         CALCW    _slv,(a2),_long,l
  422.  
  423.         rts
  424.  
  425. _rfast        addq    #2,d1
  426.         CALCR    _cia,$bfe001,_byte,b
  427.         CALCW    _cia,$bfec01,_byte,b
  428.  
  429.         addq    #2,d1
  430.         CALCR    _cust,vposr(a6),_word,w
  431.         CALCW    _cust,$184(a6),_word,w
  432.  
  433.         addq    #2,d1
  434.         CALCR    _chip,MEMCHIP,_word,w
  435.         CALCW    _chip,MEMCHIP,_word,w
  436.  
  437.         addq    #2,d1
  438.         CALCR    _exp,(a3),_word,w
  439.         CALCW    _exp,(a3),_word,w
  440.  
  441.         addq    #2,d1
  442.         CALCR    _slv,(a2),_word,w
  443.         CALCW    _slv,(a2),_word,w
  444.  
  445.         rts
  446.  
  447.     CNOP 0,4
  448. _ssp        dc.l    0
  449. _tags        dc.l    WHDLTAG_ECLOCKFREQ_GET
  450. _freq        dc.l    0
  451.         dc.l    WHDLTAG_ATTNFLAGS_GET
  452. _attn        dc.l    0
  453.         dc.l    WHDLTAG_VERSION_GET
  454. _ver        dc.l    0
  455.         dc.l    WHDLTAG_REVISION_GET
  456. _rev        dc.l    0
  457.         dc.l    WHDLTAG_BUILD_GET
  458. _build        dc.l    0
  459.         dc.l    WHDLTAG_CUSTOM1_GET
  460. _custom1    dc.l    0
  461.         dc.l    WHDLTAG_Private5    ;allowing free modifications using SetCPU
  462.         dc.l    -1
  463.         dc.l    TAG_DONE
  464. _read        dc.b    "read",0
  465. _writ        dc.b    "writ",0
  466. _byte        dc.b    "byte",0
  467. _word        dc.b    "word",0
  468. _long        dc.b    "long",0
  469. _cia        dc.b    "cia ",0
  470. _cust        dc.b    "cust",0
  471. _exp        dc.b    "exp ",0
  472. _slv        dc.b    "slv ",0
  473. _chip        dc.b    "chip",0
  474.     EVEN
  475.  
  476. ;--------------------------------
  477. ; IN:    d0 = word x
  478. ;    d1 = word y
  479. ;    a0 = cptr string
  480. ; OUT:    d0 = word new x
  481.  
  482. _ps        movem.l    d2,-(a7)
  483.         moveq    #0,d2
  484.         bra    .in
  485. .next        bsr    _pc
  486.         add.w    #CHARWIDTH,d0
  487. .in        move.b    (a0)+,d2
  488.         bne    .next
  489.         movem.l    (a7)+,d2
  490.         rts
  491.  
  492. ; IN:    d0 = word x
  493. ;    d1 = word y
  494. ;    d2 = long value
  495. ;    d6 = leading spaces?
  496. ; OUT:    d0 = word new x
  497.  
  498. _pi        move.l    d6,-(a7)
  499.         st    d6
  500.         bsr    _pi2
  501.         move.l    (a7)+,d6
  502.         rts
  503.  
  504. _pi1        move.l    d6,-(a7)
  505.         sf    d6
  506.         bsr    _pi2
  507.         move.l    (a7)+,d6
  508.         rts
  509.  
  510. _pi2        movem.l    d2-d5,-(a7)
  511.         moveq    #7,d4
  512.         sf    d5
  513.         move.l    d2,d3
  514. .n        rol.l    #4,d3
  515.         move.b    d3,d2
  516.         and.w    #$f,d2
  517.         beq    .0
  518.         st    d5
  519.         cmp.w    #$a,d2
  520.         bhs    .a
  521.         add.w    #"0",d2
  522.         bra    .g
  523.  
  524. .0        moveq    #"0",d2
  525.         tst.b    d5
  526.         bne    .g
  527.         tst.b    d4        ;last?
  528.         beq    .g
  529.         tst.b    d6
  530.         beq    .l
  531.         moveq    #" ",d2
  532.         bra    .g
  533.  
  534. .a        add.w    #"a"-10,d2
  535.  
  536. .g        bsr    _pc
  537.         add.w    #CHARWIDTH,d0
  538. .l        dbf    d4,.n
  539.         movem.l    (a7)+,d2-d5
  540.         rts
  541.  
  542. ; IN:    d0 = word x
  543. ;    d1 = word y
  544. ;    d2 = byte digit (0..15)
  545.  
  546. _pc        movem.l    d0-d3/a0-a1,-(a7)
  547.         lea    (MEMSCREEN),a0
  548.         mulu    #SCREENWIDTH/8,d1
  549.         add.l    d1,a0
  550.         sub.w    #32,d2
  551.         mulu    #CHARWIDTH,d2
  552.         lea    (_font),a1
  553.         moveq    #CHARHEIGHT-1,d3
  554. .cp        bfextu    (a1){d2:CHARWIDTH},d1
  555.         bfins    d1,(a0){d0:CHARWIDTH}
  556.         add.l    #(_font_-_font)*8/CHARHEIGHT,d2
  557.         add.l    #SCREENWIDTH,d0
  558.         dbf    d3,.cp
  559.         movem.l    (a7)+,d0-d3/a0-a1
  560.         rts
  561.  
  562. _font        INCBIN    sources:pics/pic_font_5x6_br.bin
  563. _font_
  564. _stuffend
  565.  
  566. _copper        dc.w    diwstrt,$1a81
  567.         dc.w    diwstop,$1ac1+((SCREENHEIGHT-256)*$100)
  568.         dc.w    bplcon0,$1200
  569.         dc.w    bplpt+0,MEMSCREEN>>16
  570.         dc.w    bplpt+2,MEMSCREEN&$ffff
  571.         dc.w    bpl1mod,0
  572.         dc.w    color+0,0
  573.         dc.w    color+2,$ddd
  574.         dc.l    -2
  575.  
  576. _var        dc.l    0
  577.  
  578. _iff        dc.l    "FORM",4+8+$14+8+6+8+SCREENWIDTH*SCREENHEIGHT/8,"ILBM"
  579.         dc.l    "BMHD",$14
  580.         dc.w    SCREENWIDTH,SCREENHEIGHT,0,0
  581.         dc.b    1,0,0,0
  582.         dc.w    0
  583.         dc.b    10,11
  584.         dc.w    SCREENWIDTH,SCREENHEIGHT
  585.         dc.l    "CMAP",6
  586.         dc.b    0,0,0,255,255,255
  587.         dc.l    "BODY",SCREENWIDTH*SCREENHEIGHT/8
  588. _iff_
  589. _pic        dc.b    "benchmark.ilbm",0
  590. _nc        dc.b    "      nc",0
  591. _ic        dc.b    "      ic",0
  592. _bc        dc.b    "   ss+bc",0
  593. _wt        dc.b    "   dc-wt",0
  594. _cb        dc.b    "   dc-cb",0
  595. _sb        dc.b    "  sb/nwa",0
  596. _leg2        dc.b    "setcpu",0
  597. _leg3        dc.b    "cacr",0
  598. _leg4        dc.b    "pcr",0
  599. _top        dc.b    ">>speed<< - amount of memory accesses per 1/11 second",0
  600. _top2        dc.b    "AttnFlags=",0
  601. _top3        dc.b    "  Eclock=",0
  602. _top5        dc.b    "  whdload"
  603. _equ        dc.b    "=",0
  604. _dot        dc.b    ".",0
  605. _quit        dc.b    "hold lmb to quit and save pic  v1.9  wepl "
  606.     INCBIN    t:date
  607.         dc.b    0
  608.     EVEN
  609.  
  610. ;======================================================================
  611.  
  612.     END
  613.